home *** CD-ROM | disk | FTP | other *** search
/ Celestin Apprentice 4 / Apprentice-Release4.iso / Languages / Caml Light 0.7 / Caml Light 0.7 source / src / lib / string.ml < prev    next >
Text File  |  1995-06-01  |  1KB  |  56 lines

  1. (* Operation on strings, with sanity checks *)
  2.  
  3. #open "eq";;
  4. #open "int";;
  5. #open "exc";;
  6.  
  7. let create_string n =
  8.   if n < 0 or n > sys__max_string_length
  9.   then invalid_arg "create_string"
  10.   else fstring__create_string n
  11. ;;
  12.  
  13. let make_string n c =
  14.   if n < 0 or n > sys__max_string_length
  15.   then invalid_arg "make_string"
  16.   else fstring__make_string n c
  17. ;;
  18.  
  19. let nth_char s n =
  20.   if n < 0 or n >= string_length s
  21.   then invalid_arg "nth_char"
  22.   else fstring__nth_char s n
  23. ;;
  24. let set_nth_char s n c =
  25.   if n < 0 or n >= string_length s
  26.   then invalid_arg "set_nth_char"
  27.   else fstring__set_nth_char s n c
  28. ;;
  29. let fill_string s start len c =
  30.   if start < 0 or len < 0 or start+len > string_length s
  31.   then invalid_arg "fill_string"
  32.   else fstring__fill_string s start len c
  33. ;;
  34. let blit_string src start_src dst start_dst len =
  35.   if start_src < 0 or start_src + len > string_length src
  36.   or start_dst < 0 or start_dst + len > string_length dst
  37.   or len < 0
  38.   then invalid_arg "blit_string"
  39.   else fstring__blit_string src start_src dst start_dst len
  40. ;;
  41. let prefix ^ = fstring__prefix ^
  42. ;;
  43. let sub_string s start len =
  44.   if start < 0 or len < 0 or start+len > string_length s
  45.   then invalid_arg "sub_string"
  46.   else fstring__sub_string s start len
  47. ;;
  48. let replace_string dest src pos =
  49.   if pos < 0 or pos + string_length src > string_length dest
  50.   then invalid_arg "replace_string"
  51.   else fstring__replace_string dest src pos
  52. ;;
  53.  
  54. let string_for_read = fstring__string_for_read
  55. ;;
  56.